Yiksan0315's Blog

Back Propagation

# Tag:

  • Source/KU_DL
  • Source/KU_ML2

Back Propagation(오차 역전파)

ANN의 hidden layer의 오차를 업데이트 하는 방법. hidden layer의 출력값은, 드러나지 않으므로 알 수 없으니 output layer의 Loss function을 편미분하여 Chain-Rule을 이용해 hidden layer의 가중치를 업데이트 한다.

Weights 의 업데이트는 Loss function에 대해 의 꼴로 볼 수 있으므로, 를 이용해 Gradient Descent하는 방식으로 이루어진다.

Why use Chain-Rule?

하지만 ANN은 여러 layer가 복잡하게 쌓여져 있는, linear function과 non-linear function이 복잡하게 얽혀있는 구조이므로 한번에 그 편미분을 구하기는 거의 불가능에 가깝다. 이를 해결하기 위해 각 function에 대하여 Chain-Rule를 이용해 끊어 계산한다.
  • 수정수정

Hidden Layer update

Multilabel classification

만약 개의 independent한 이진 분류를 수행한다고 하면, 각각의 K개에 대해서 그 밑의 Hidden Layer를 공유하도록 하여 model을 만들 수 있다.

BCE의 합을 [[Loss]] 함수로 사용하여 업데이트 된다.

즉, Hidden layer가 업데이트를 공유시키므로써 일종의 dynamic programming을 통해 계산 성능을 향상시킨다.

이는 Multitask Learning이라고도 불리는데, task(이진 분류)는 여러 개를 수행하면서 Hidden Layer는 공유하기 때문이다.

Known-form partial derivative function

편의를 위해, 그 입력으로 차원의 vector 가 들어 왔다고 가정한다.

Sigmoid function

꼴의 matrix이며, sparse 하므로 행렬 곱을 통해 계산할 때는 diagonal의 행렬로 단순화 된다.

Cross Entropy Loss

이 때, 는 label에 대한 one-hot vector.

With Softmax

보통 softmax function()과 많이 결합시켜 사용된다.

의 결과를 만들어 낸다고 하면, 이에 대한 Jacobian

cross Entropy에 대하여 Chain-Rule로 연결하면

이 때, 이 되므로(one-hot vector), 결국에는

의 row vector로 변환된다.

With Sigmoid

Sigmoid function과 결합하였을 때도 편미분에 대해 편리한 꼴이 나온다.

For

for

vector에 대한 Matrix의 미분이므로 그 Jacobian은 Tensor의 형태로 나온다.

Let . 이 때, 차원의 벡터이므로 Jacobian이 된다.

의 꼴이 되고, 이에 대해서 각각을 로 편미분 하면 각각의 번째 행에 대하여,

꼴이 나오게 되고, 이러한 행렬이 총 (의 개수)개로 쌓여있는 tensor 형태이다.

결국에는 특정 행만 존재하는 Sparse한 형태의 Matrix의 Vector이므로, 어떠한 upstream 에 대하여,

toc test

이 페이지는 리디주식회사에서 제공한 리디바탕 글꼴이 사용되어 있습니다. 리디바탕의 저작권은 리디주식회사가 소유하고 있습니다.

This Font Software is licensed under the SIL Open Font License, Version 1.1.

Copyright 2025. yiksan0315 All rights reserved.